package com.fy.proj2_login_api.service;

import com.fy.proj2_login_api.model.User;
import org.springframework.stereotype.Service;

import jakarta.annotation.PostConstruct;
import java.util.HashMap;
import java.util.Map;

// 用户服务类，提供用户相关的业务逻辑
@Service
public class UserService {
    // 使用Map模拟数据库，存储用户信息
    private Map<String, User> userDatabase = new HashMap<>();

    // 初始化方法，在服务创建后自动执行，用于添加测试用户数据
    @PostConstruct
    public void init() {
        // 模拟数据库中的用户数据
        // 添加管理员用户
        userDatabase.put("admin", new User("admin", "admin123", "ADMIN"));
        // 添加普通用户
        userDatabase.put("user", new User("user", "user123", "USER"));
        // 添加访客用户
        userDatabase.put("guest", new User("guest", "guest123", "GUEST"));
    }

    // 根据用户名查找用户
    public User findByUsername(String username) {
        return userDatabase.get(username);
    }

    // 验证用户名和密码是否正确
    public boolean validateUser(String username, String password) {
        // 根据用户名查找用户
        User user = findByUsername(username);
        // 验证用户是否存在且密码是否正确
        return user != null && user.getPassword().equals(password);
    }
}